/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.actions.empleados;

import com.mapping.Departamento;
import com.mapping.Empleado;
import com.opensymphony.xwork2.ActionSupport;
import java.util.Calendar;
import java.util.GregorianCalendar;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.Result;

/**
 *
 * @author Ricardo
 */
@Namespace(value = "/")
@Action(value = "altaEmpleado", results = {
    @Result(name = "success", location = "/GestionEmpleados/resultadoAltaEmpleado.jsp")})
public class AltaEmpleado extends ActionSupport {

    private String nombre;
    private String puesto;
    private String departamento;
    private Empleado empleado;
    private Departamento dept;

    @Override
    public String execute() {
        empleado = new Empleado();
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("inventarios");
        EntityManager em = emf.createEntityManager();
        EntityTransaction tx = em.getTransaction();
        tx.begin();
        empleado.setIdEmpleado(getIdeEmpleado());
        empleado.setNombre(nombre);
        empleado.setPuesto(puesto);
        dept = (Departamento) em.getReference(Departamento.class, departamento);
        empleado.setDepartamento(dept);
        em.persist(empleado);
        em.flush();
        tx.commit();
        em.close();
        return SUCCESS;
    }

    private String getIdeEmpleado() {
        String fecha = "";
        Calendar date = new GregorianCalendar();
        fecha = "" + date.get(Calendar.YEAR) + date.get(Calendar.MONTH) + date.get(Calendar.DAY_OF_MONTH) + date.get(Calendar.SECOND);
        return fecha;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public void setPuesto(String puesto) {
        this.puesto = puesto;
    }

    public void setDepartamento(String departamento) {
        this.departamento = departamento;
    }

    public Empleado getEmpleado() {
        return empleado;
    }

    public Departamento getDept() {
        return dept;
    }
}
